﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Kazuku.Core.Models {
	public class TemplatePage : System.Web.Mvc.ViewPage<Page> {
		public List<PartialRequest> GetContentByLocation(string location) {
			List<PartialRequest> partialRequests = new List<PartialRequest>();
			List<PageModule> pageModulesForLocation = Model.PageModules.FindAll(p => p.Location == location);
			
			foreach (PageModule pageModule in pageModulesForLocation) {
				PartialRequest partialRequest = new PartialRequest(
					new {
					    	controller = pageModule.Controller,
					    	action = pageModule.Action,
					    	id = pageModule.ItemID,
					    	pageModuleID = pageModule.ID,
					    	area = pageModule.Area
					    });
				foreach (string parameter in pageModule.Parameters.Keys) {
					if (partialRequest.RouteValues.ContainsKey(parameter)) {
						partialRequest.RouteValues[parameter] = pageModule.Parameters[parameter];
					}
					else {
						partialRequest.RouteValues.Add(parameter, pageModule.Parameters[parameter]);
					}
				}

				partialRequests.Add(partialRequest);
			}
			return partialRequests;
		}
	}
}